#pragma once
#include "ckProcessor.h"
#include "ckRasterBand.h"

namespace ck
{
	namespace algorithm
	{
		namespace raster
		{
			class ZPROCESSOR_API MSEProcessor : public Processor
			{
			public:
				MSEProcessor();
				virtual ~MSEProcessor();

			public:
				virtual RESULTCODE	Execute();
				virtual double		GetValue();

			public:
				void	SetBand(data::RasterBand* pBand1, data::RasterBand* pBand2);

			protected:
				
				RESULTCODE	Calculate_Byte();
				RESULTCODE	Calculate_UInt16();

			protected:
				data::RasterBand* m_pBand1;
				data::RasterBand* m_pBand2;

				double m_mse;
			};
		}
	}
}
